#include "BulletDynamics/Dynamics/btRigidBody.h"
#ifdef __cplusplus
extern "C" {
#endif
btRigidBodyFloatData* bullet_NewbtRigidBodyFloatData(){
	btRigidBodyFloatData* wrap_out = new btRigidBodyFloatData();
	return wrap_out;
}

float bullet_btRigidBodyFloatData_GetFieldOfM_additionalAngularDampingFactor(btRigidBodyFloatData* c_this){
	return (float)(c_this->m_additionalAngularDampingFactor);
}

float bullet_btRigidBodyFloatData_GetFieldOfM_additionalAngularDampingThresholdSqr(btRigidBodyFloatData* c_this){
	return (float)(c_this->m_additionalAngularDampingThresholdSqr);
}

int bullet_btRigidBodyFloatData_GetFieldOfM_additionalDamping(btRigidBodyFloatData* c_this){
	return (int)(c_this->m_additionalDamping);
}

float bullet_btRigidBodyFloatData_GetFieldOfM_additionalDampingFactor(btRigidBodyFloatData* c_this){
	return (float)(c_this->m_additionalDampingFactor);
}

float bullet_btRigidBodyFloatData_GetFieldOfM_additionalLinearDampingThresholdSqr(btRigidBodyFloatData* c_this){
	return (float)(c_this->m_additionalLinearDampingThresholdSqr);
}

float bullet_btRigidBodyFloatData_GetFieldOfM_angularDamping(btRigidBodyFloatData* c_this){
	return (float)(c_this->m_angularDamping);
}

btVector3FloatData* bullet_btRigidBodyFloatData_GetFieldOfM_angularFactor(btRigidBodyFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_angularFactor);
}

float bullet_btRigidBodyFloatData_GetFieldOfM_angularSleepingThreshold(btRigidBodyFloatData* c_this){
	return (float)(c_this->m_angularSleepingThreshold);
}

btVector3FloatData* bullet_btRigidBodyFloatData_GetFieldOfM_angularVelocity(btRigidBodyFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_angularVelocity);
}

btCollisionObjectFloatData* bullet_btRigidBodyFloatData_GetFieldOfM_collisionObjectData(btRigidBodyFloatData* c_this){
	return (btCollisionObjectFloatData*)(&c_this->m_collisionObjectData);
}

btVector3FloatData* bullet_btRigidBodyFloatData_GetFieldOfM_gravity(btRigidBodyFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_gravity);
}

btVector3FloatData* bullet_btRigidBodyFloatData_GetFieldOfM_gravity_acceleration(btRigidBodyFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_gravity_acceleration);
}

float bullet_btRigidBodyFloatData_GetFieldOfM_inverseMass(btRigidBodyFloatData* c_this){
	return (float)(c_this->m_inverseMass);
}

btVector3FloatData* bullet_btRigidBodyFloatData_GetFieldOfM_invInertiaLocal(btRigidBodyFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_invInertiaLocal);
}

btMatrix3x3FloatData* bullet_btRigidBodyFloatData_GetFieldOfM_invInertiaTensorWorld(btRigidBodyFloatData* c_this){
	return (btMatrix3x3FloatData*)(&c_this->m_invInertiaTensorWorld);
}

float bullet_btRigidBodyFloatData_GetFieldOfM_linearDamping(btRigidBodyFloatData* c_this){
	return (float)(c_this->m_linearDamping);
}

btVector3FloatData* bullet_btRigidBodyFloatData_GetFieldOfM_linearFactor(btRigidBodyFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_linearFactor);
}

float bullet_btRigidBodyFloatData_GetFieldOfM_linearSleepingThreshold(btRigidBodyFloatData* c_this){
	return (float)(c_this->m_linearSleepingThreshold);
}

btVector3FloatData* bullet_btRigidBodyFloatData_GetFieldOfM_linearVelocity(btRigidBodyFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_linearVelocity);
}

btVector3FloatData* bullet_btRigidBodyFloatData_GetFieldOfM_totalForce(btRigidBodyFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_totalForce);
}

btVector3FloatData* bullet_btRigidBodyFloatData_GetFieldOfM_totalTorque(btRigidBodyFloatData* c_this){
	return (btVector3FloatData*)(&c_this->m_totalTorque);
}

btRigidBodyDoubleData* bullet_NewbtRigidBodyDoubleData(){
	btRigidBodyDoubleData* wrap_out = new btRigidBodyDoubleData();
	return wrap_out;
}

double bullet_btRigidBodyDoubleData_GetFieldOfM_additionalAngularDampingFactor(btRigidBodyDoubleData* c_this){
	return (double)(c_this->m_additionalAngularDampingFactor);
}

double bullet_btRigidBodyDoubleData_GetFieldOfM_additionalAngularDampingThresholdSqr(btRigidBodyDoubleData* c_this){
	return (double)(c_this->m_additionalAngularDampingThresholdSqr);
}

int bullet_btRigidBodyDoubleData_GetFieldOfM_additionalDamping(btRigidBodyDoubleData* c_this){
	return (int)(c_this->m_additionalDamping);
}

double bullet_btRigidBodyDoubleData_GetFieldOfM_additionalDampingFactor(btRigidBodyDoubleData* c_this){
	return (double)(c_this->m_additionalDampingFactor);
}

double bullet_btRigidBodyDoubleData_GetFieldOfM_additionalLinearDampingThresholdSqr(btRigidBodyDoubleData* c_this){
	return (double)(c_this->m_additionalLinearDampingThresholdSqr);
}

double bullet_btRigidBodyDoubleData_GetFieldOfM_angularDamping(btRigidBodyDoubleData* c_this){
	return (double)(c_this->m_angularDamping);
}

btVector3DoubleData* bullet_btRigidBodyDoubleData_GetFieldOfM_angularFactor(btRigidBodyDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_angularFactor);
}

double bullet_btRigidBodyDoubleData_GetFieldOfM_angularSleepingThreshold(btRigidBodyDoubleData* c_this){
	return (double)(c_this->m_angularSleepingThreshold);
}

btVector3DoubleData* bullet_btRigidBodyDoubleData_GetFieldOfM_angularVelocity(btRigidBodyDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_angularVelocity);
}

btCollisionObjectDoubleData* bullet_btRigidBodyDoubleData_GetFieldOfM_collisionObjectData(btRigidBodyDoubleData* c_this){
	return (btCollisionObjectDoubleData*)(&c_this->m_collisionObjectData);
}

btVector3DoubleData* bullet_btRigidBodyDoubleData_GetFieldOfM_gravity(btRigidBodyDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_gravity);
}

btVector3DoubleData* bullet_btRigidBodyDoubleData_GetFieldOfM_gravity_acceleration(btRigidBodyDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_gravity_acceleration);
}

double bullet_btRigidBodyDoubleData_GetFieldOfM_inverseMass(btRigidBodyDoubleData* c_this){
	return (double)(c_this->m_inverseMass);
}

btVector3DoubleData* bullet_btRigidBodyDoubleData_GetFieldOfM_invInertiaLocal(btRigidBodyDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_invInertiaLocal);
}

btMatrix3x3DoubleData* bullet_btRigidBodyDoubleData_GetFieldOfM_invInertiaTensorWorld(btRigidBodyDoubleData* c_this){
	return (btMatrix3x3DoubleData*)(&c_this->m_invInertiaTensorWorld);
}

double bullet_btRigidBodyDoubleData_GetFieldOfM_linearDamping(btRigidBodyDoubleData* c_this){
	return (double)(c_this->m_linearDamping);
}

btVector3DoubleData* bullet_btRigidBodyDoubleData_GetFieldOfM_linearFactor(btRigidBodyDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_linearFactor);
}

double bullet_btRigidBodyDoubleData_GetFieldOfM_linearSleepingThreshold(btRigidBodyDoubleData* c_this){
	return (double)(c_this->m_linearSleepingThreshold);
}

btVector3DoubleData* bullet_btRigidBodyDoubleData_GetFieldOfM_linearVelocity(btRigidBodyDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_linearVelocity);
}

char** bullet_btRigidBodyDoubleData_GetFieldOfM_padding(btRigidBodyDoubleData* c_this){
	return (char**)(&c_this->m_padding);
}

btVector3DoubleData* bullet_btRigidBodyDoubleData_GetFieldOfM_totalForce(btRigidBodyDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_totalForce);
}

btVector3DoubleData* bullet_btRigidBodyDoubleData_GetFieldOfM_totalTorque(btRigidBodyDoubleData* c_this){
	return (btVector3DoubleData*)(&c_this->m_totalTorque);
}

btRigidBody::btRigidBodyConstructionInfo* bullet_NewbtRigidBodybtRigidBodyConstructionInfo(double mass,btMotionState* motionState,btCollisionShape* collisionShape,btVector3* localInertia){
	btScalar c_arg_mass=mass;
	btMotionState * c_arg_motionState=(btMotionState *)(void*)(motionState);
	btCollisionShape * c_arg_collisionShape=(btCollisionShape *)(void*)(collisionShape);
	btVector3 const& c_arg_localInertia=(btVector3 const&)(*localInertia);
	btRigidBody::btRigidBodyConstructionInfo* wrap_out = new btRigidBody::btRigidBodyConstructionInfo(c_arg_mass,c_arg_motionState,c_arg_collisionShape,c_arg_localInertia);
	return wrap_out;
}

double bullet_btRigidBodybtRigidBodyConstructionInfo_GetFieldOfM_additionalAngularDampingFactor(btRigidBody::btRigidBodyConstructionInfo* c_this){
	return (double)(c_this->m_additionalAngularDampingFactor);
}

double bullet_btRigidBodybtRigidBodyConstructionInfo_GetFieldOfM_additionalAngularDampingThresholdSqr(btRigidBody::btRigidBodyConstructionInfo* c_this){
	return (double)(c_this->m_additionalAngularDampingThresholdSqr);
}

bool bullet_btRigidBodybtRigidBodyConstructionInfo_GetFieldOfM_additionalDamping(btRigidBody::btRigidBodyConstructionInfo* c_this){
	return (bool)(c_this->m_additionalDamping);
}

double bullet_btRigidBodybtRigidBodyConstructionInfo_GetFieldOfM_additionalDampingFactor(btRigidBody::btRigidBodyConstructionInfo* c_this){
	return (double)(c_this->m_additionalDampingFactor);
}

double bullet_btRigidBodybtRigidBodyConstructionInfo_GetFieldOfM_additionalLinearDampingThresholdSqr(btRigidBody::btRigidBodyConstructionInfo* c_this){
	return (double)(c_this->m_additionalLinearDampingThresholdSqr);
}

double bullet_btRigidBodybtRigidBodyConstructionInfo_GetFieldOfM_angularDamping(btRigidBody::btRigidBodyConstructionInfo* c_this){
	return (double)(c_this->m_angularDamping);
}

double bullet_btRigidBodybtRigidBodyConstructionInfo_GetFieldOfM_angularSleepingThreshold(btRigidBody::btRigidBodyConstructionInfo* c_this){
	return (double)(c_this->m_angularSleepingThreshold);
}

double bullet_btRigidBodybtRigidBodyConstructionInfo_GetFieldOfM_friction(btRigidBody::btRigidBodyConstructionInfo* c_this){
	return (double)(c_this->m_friction);
}

double bullet_btRigidBodybtRigidBodyConstructionInfo_GetFieldOfM_linearDamping(btRigidBody::btRigidBodyConstructionInfo* c_this){
	return (double)(c_this->m_linearDamping);
}

double bullet_btRigidBodybtRigidBodyConstructionInfo_GetFieldOfM_linearSleepingThreshold(btRigidBody::btRigidBodyConstructionInfo* c_this){
	return (double)(c_this->m_linearSleepingThreshold);
}

btVector3* bullet_btRigidBodybtRigidBodyConstructionInfo_GetFieldOfM_localInertia(btRigidBody::btRigidBodyConstructionInfo* c_this){
	return (btVector3*)(&c_this->m_localInertia);
}

double bullet_btRigidBodybtRigidBodyConstructionInfo_GetFieldOfM_mass(btRigidBody::btRigidBodyConstructionInfo* c_this){
	return (double)(c_this->m_mass);
}

double bullet_btRigidBodybtRigidBodyConstructionInfo_GetFieldOfM_restitution(btRigidBody::btRigidBodyConstructionInfo* c_this){
	return (double)(c_this->m_restitution);
}

double bullet_btRigidBodybtRigidBodyConstructionInfo_GetFieldOfM_rollingFriction(btRigidBody::btRigidBodyConstructionInfo* c_this){
	return (double)(c_this->m_rollingFriction);
}

double bullet_btRigidBodybtRigidBodyConstructionInfo_GetFieldOfM_spinningFriction(btRigidBody::btRigidBodyConstructionInfo* c_this){
	return (double)(c_this->m_spinningFriction);
}

btTransform* bullet_btRigidBodybtRigidBodyConstructionInfo_GetFieldOfM_startWorldTransform(btRigidBody::btRigidBodyConstructionInfo* c_this){
	return (btTransform*)(&c_this->m_startWorldTransform);
}

btRigidBody* bullet_NewbtRigidBody(btRigidBody::btRigidBodyConstructionInfo* constructionInfo){
	btRigidBody::btRigidBodyConstructionInfo const& c_arg_constructionInfo=(btRigidBody::btRigidBodyConstructionInfo const&)(*constructionInfo);
	btRigidBody* wrap_out = new btRigidBody(c_arg_constructionInfo);
	return wrap_out;
}

btRigidBody* bullet_NewbtRigidBody1(double mass,btMotionState* motionState,btCollisionShape* collisionShape,btVector3* localInertia){
	btScalar c_arg_mass=mass;
	btMotionState * c_arg_motionState=(btMotionState *)(void*)(motionState);
	btCollisionShape * c_arg_collisionShape=(btCollisionShape *)(void*)(collisionShape);
	btVector3 const& c_arg_localInertia=(btVector3 const&)(*localInertia);
	btRigidBody* wrap_out = new btRigidBody(c_arg_mass,c_arg_motionState,c_arg_collisionShape,c_arg_localInertia);
	return wrap_out;
}

void bullet_btRigidBody_addConstraintRef(btRigidBody* c_this,btTypedConstraint* c){
	btTypedConstraint * c_arg_c=(btTypedConstraint *)(void*)(c);
	c_this->addConstraintRef(c_arg_c);
}

void bullet_btRigidBody_applyCentralForce(btRigidBody* c_this,btVector3* force){
	btVector3 const& c_arg_force=(btVector3 const&)(*force);
	c_this->applyCentralForce(c_arg_force);
}

void bullet_btRigidBody_applyCentralImpulse(btRigidBody* c_this,btVector3* impulse){
	btVector3 const& c_arg_impulse=(btVector3 const&)(*impulse);
	c_this->applyCentralImpulse(c_arg_impulse);
}

void bullet_btRigidBody_applyCentralPushImpulse(btRigidBody* c_this,btVector3* impulse){
	btVector3 const& c_arg_impulse=(btVector3 const&)(*impulse);
	c_this->applyCentralPushImpulse(c_arg_impulse);
}

void bullet_btRigidBody_applyDamping(btRigidBody* c_this,double timeStep){
	btScalar c_arg_timeStep=timeStep;
	c_this->applyDamping(c_arg_timeStep);
}

void bullet_btRigidBody_applyForce(btRigidBody* c_this,btVector3* force,btVector3* rel_pos){
	btVector3 const& c_arg_force=(btVector3 const&)(*force);
	btVector3 const& c_arg_rel_pos=(btVector3 const&)(*rel_pos);
	c_this->applyForce(c_arg_force,c_arg_rel_pos);
}

void bullet_btRigidBody_applyGravity(btRigidBody* c_this){
	c_this->applyGravity();
}

void bullet_btRigidBody_applyImpulse(btRigidBody* c_this,btVector3* impulse,btVector3* rel_pos){
	btVector3 const& c_arg_impulse=(btVector3 const&)(*impulse);
	btVector3 const& c_arg_rel_pos=(btVector3 const&)(*rel_pos);
	c_this->applyImpulse(c_arg_impulse,c_arg_rel_pos);
}

void bullet_btRigidBody_applyPushImpulse(btRigidBody* c_this,btVector3* impulse,btVector3* rel_pos){
	btVector3 const& c_arg_impulse=(btVector3 const&)(*impulse);
	btVector3 const& c_arg_rel_pos=(btVector3 const&)(*rel_pos);
	c_this->applyPushImpulse(c_arg_impulse,c_arg_rel_pos);
}

void bullet_btRigidBody_applyTorque(btRigidBody* c_this,btVector3* torque){
	btVector3 const& c_arg_torque=(btVector3 const&)(*torque);
	c_this->applyTorque(c_arg_torque);
}

void bullet_btRigidBody_applyTorqueImpulse(btRigidBody* c_this,btVector3* torque){
	btVector3 const& c_arg_torque=(btVector3 const&)(*torque);
	c_this->applyTorqueImpulse(c_arg_torque);
}

void bullet_btRigidBody_applyTorqueTurnImpulse(btRigidBody* c_this,btVector3* torque){
	btVector3 const& c_arg_torque=(btVector3 const&)(*torque);
	c_this->applyTorqueTurnImpulse(c_arg_torque);
}

void bullet_btRigidBody_clearForces(btRigidBody* c_this){
	c_this->clearForces();
}

void bullet_btRigidBody_clearGravity(btRigidBody* c_this){
	c_this->clearGravity();
}

double bullet_btRigidBody_computeAngularImpulseDenominator(btRigidBody* c_this,btVector3* axis){
	btVector3 const& c_arg_axis=(btVector3 const&)(*axis);
	btScalar c_out = c_this->computeAngularImpulseDenominator(c_arg_axis);
	double wrap_out = (c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_computeGyroscopicForceExplicit(btRigidBody* c_this,double maxGyroscopicForce){
	btScalar c_arg_maxGyroscopicForce=maxGyroscopicForce;
	btVector3 c_out = c_this->computeGyroscopicForceExplicit(c_arg_maxGyroscopicForce);
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_computeGyroscopicImpulseImplicit_Body(btRigidBody* c_this,double step){
	btScalar c_arg_step=step;
	btVector3 c_out = c_this->computeGyroscopicImpulseImplicit_Body(c_arg_step);
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_computeGyroscopicImpulseImplicit_World(btRigidBody* c_this,double dt){
	btScalar c_arg_dt=dt;
	btVector3 c_out = c_this->computeGyroscopicImpulseImplicit_World(c_arg_dt);
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

double bullet_btRigidBody_computeImpulseDenominator(btRigidBody* c_this,btVector3* pos,btVector3* normal){
	btVector3 const& c_arg_pos=(btVector3 const&)(*pos);
	btVector3 const& c_arg_normal=(btVector3 const&)(*normal);
	btScalar c_out = c_this->computeImpulseDenominator(c_arg_pos,c_arg_normal);
	double wrap_out = (c_out);
	return wrap_out;
}

void bullet_btRigidBody_getAabb(btRigidBody* c_this,btVector3* aabbMin,btVector3* aabbMax){
	btVector3& c_arg_aabbMin=(btVector3&)(*aabbMin);
	btVector3& c_arg_aabbMax=(btVector3&)(*aabbMax);
	c_this->getAabb(c_arg_aabbMin,c_arg_aabbMax);
}

double bullet_btRigidBody_getAngularDamping(btRigidBody* c_this){
	btScalar c_out = c_this->getAngularDamping();
	double wrap_out = (c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_getAngularFactor(btRigidBody* c_this){
	btVector3 const& c_out = c_this->getAngularFactor();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

double bullet_btRigidBody_getAngularSleepingThreshold(btRigidBody* c_this){
	btScalar c_out = c_this->getAngularSleepingThreshold();
	double wrap_out = (c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_getAngularVelocity(btRigidBody* c_this){
	btVector3 const& c_out = c_this->getAngularVelocity();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

btBroadphaseProxy* bullet_btRigidBody_getBroadphaseProxy(btRigidBody* c_this){
	btBroadphaseProxy const * c_out = c_this->getBroadphaseProxy();
	btBroadphaseProxy* wrap_out = (btBroadphaseProxy*)(void*)(c_out);
	return wrap_out;
}

btBroadphaseProxy* bullet_btRigidBody_getBroadphaseProxy1(btRigidBody* c_this){
	btBroadphaseProxy * c_out = c_this->getBroadphaseProxy();
	btBroadphaseProxy* wrap_out = (btBroadphaseProxy*)(void*)(c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_getCenterOfMassPosition(btRigidBody* c_this){
	btVector3 const& c_out = c_this->getCenterOfMassPosition();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

btTransform* bullet_btRigidBody_getCenterOfMassTransform(btRigidBody* c_this){
	btTransform const& c_out = c_this->getCenterOfMassTransform();
	btTransform* wrap_out = (btTransform*)(&c_out);
	return wrap_out;
}

int bullet_btRigidBody_GetFieldOfM_contactSolverType(btRigidBody* c_this){
	return (int)(c_this->m_contactSolverType);
}

int bullet_btRigidBody_GetFieldOfM_frictionSolverType(btRigidBody* c_this){
	return (int)(c_this->m_frictionSolverType);
}

int bullet_btRigidBody_getFlags(btRigidBody* c_this){
	int c_out = c_this->getFlags();
	int wrap_out = (c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_getGravity(btRigidBody* c_this){
	btVector3 const& c_out = c_this->getGravity();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_getInvInertiaDiagLocal(btRigidBody* c_this){
	btVector3 const& c_out = c_this->getInvInertiaDiagLocal();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

btMatrix3x3* bullet_btRigidBody_getInvInertiaTensorWorld(btRigidBody* c_this){
	btMatrix3x3 const& c_out = c_this->getInvInertiaTensorWorld();
	btMatrix3x3* wrap_out = (btMatrix3x3*)(&c_out);
	return wrap_out;
}

double bullet_btRigidBody_getInvMass(btRigidBody* c_this){
	btScalar c_out = c_this->getInvMass();
	double wrap_out = (c_out);
	return wrap_out;
}

double bullet_btRigidBody_getLinearDamping(btRigidBody* c_this){
	btScalar c_out = c_this->getLinearDamping();
	double wrap_out = (c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_getLinearFactor(btRigidBody* c_this){
	btVector3 const& c_out = c_this->getLinearFactor();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

double bullet_btRigidBody_getLinearSleepingThreshold(btRigidBody* c_this){
	btScalar c_out = c_this->getLinearSleepingThreshold();
	double wrap_out = (c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_getLinearVelocity(btRigidBody* c_this){
	btVector3 const& c_out = c_this->getLinearVelocity();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_getLocalInertia(btRigidBody* c_this){
	btVector3 c_out = c_this->getLocalInertia();
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

double bullet_btRigidBody_getMass(btRigidBody* c_this){
	btScalar c_out = c_this->getMass();
	double wrap_out = (c_out);
	return wrap_out;
}

int bullet_btRigidBody_getNumConstraintRefs(btRigidBody* c_this){
	int c_out = c_this->getNumConstraintRefs();
	int wrap_out = (c_out);
	return wrap_out;
}

btQuaternion* bullet_btRigidBody_getOrientation(btRigidBody* c_this){
	btQuaternion c_out = c_this->getOrientation();
	btQuaternion* wrap_out = new btQuaternion(c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_getPushVelocity(btRigidBody* c_this){
	btVector3 c_out = c_this->getPushVelocity();
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_getPushVelocityInLocalPoint(btRigidBody* c_this,btVector3* rel_pos){
	btVector3 const& c_arg_rel_pos=(btVector3 const&)(*rel_pos);
	btVector3 c_out = c_this->getPushVelocityInLocalPoint(c_arg_rel_pos);
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_getTotalForce(btRigidBody* c_this){
	btVector3 const& c_out = c_this->getTotalForce();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_getTotalTorque(btRigidBody* c_this){
	btVector3 const& c_out = c_this->getTotalTorque();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_getTurnVelocity(btRigidBody* c_this){
	btVector3 c_out = c_this->getTurnVelocity();
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

btVector3* bullet_btRigidBody_getVelocityInLocalPoint(btRigidBody* c_this,btVector3* rel_pos){
	btVector3 const& c_arg_rel_pos=(btVector3 const&)(*rel_pos);
	btVector3 c_out = c_this->getVelocityInLocalPoint(c_arg_rel_pos);
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

void bullet_btRigidBody_integrateVelocities(btRigidBody* c_this,double step){
	btScalar c_arg_step=step;
	c_this->integrateVelocities(c_arg_step);
}

bool bullet_btRigidBody_isInWorld(btRigidBody* c_this){
	bool c_out = c_this->isInWorld();
	bool wrap_out = (c_out);
	return wrap_out;
}

void bullet_btRigidBody_predictIntegratedTransform(btRigidBody* c_this,double step,btTransform* predictedTransform){
	btScalar c_arg_step=step;
	btTransform& c_arg_predictedTransform=(btTransform&)(*predictedTransform);
	c_this->predictIntegratedTransform(c_arg_step,c_arg_predictedTransform);
}

void bullet_btRigidBody_proceedToTransform(btRigidBody* c_this,btTransform* newTrans){
	btTransform const& c_arg_newTrans=(btTransform const&)(*newTrans);
	c_this->proceedToTransform(c_arg_newTrans);
}

void bullet_btRigidBody_removeConstraintRef(btRigidBody* c_this,btTypedConstraint* c){
	btTypedConstraint * c_arg_c=(btTypedConstraint *)(void*)(c);
	c_this->removeConstraintRef(c_arg_c);
}

void bullet_btRigidBody_saveKinematicState(btRigidBody* c_this,double step){
	btScalar c_arg_step=step;
	c_this->saveKinematicState(c_arg_step);
}

void bullet_btRigidBody_setAngularFactor(btRigidBody* c_this,btVector3* angFac){
	btVector3 const& c_arg_angFac=(btVector3 const&)(*angFac);
	c_this->setAngularFactor(c_arg_angFac);
}

void bullet_btRigidBody_setAngularFactor1(btRigidBody* c_this,double angFac){
	btScalar c_arg_angFac=angFac;
	c_this->setAngularFactor(c_arg_angFac);
}

void bullet_btRigidBody_setAngularVelocity(btRigidBody* c_this,btVector3* ang_vel){
	btVector3 const& c_arg_ang_vel=(btVector3 const&)(*ang_vel);
	c_this->setAngularVelocity(c_arg_ang_vel);
}

void bullet_btRigidBody_setCenterOfMassTransform(btRigidBody* c_this,btTransform* xform){
	btTransform const& c_arg_xform=(btTransform const&)(*xform);
	c_this->setCenterOfMassTransform(c_arg_xform);
}

void bullet_btRigidBody_setDamping(btRigidBody* c_this,double lin_damping,double ang_damping){
	btScalar c_arg_lin_damping=lin_damping;
	btScalar c_arg_ang_damping=ang_damping;
	c_this->setDamping(c_arg_lin_damping,c_arg_ang_damping);
}

void bullet_btRigidBody_setFlags(btRigidBody* c_this,int flags){
	int c_arg_flags=flags;
	c_this->setFlags(c_arg_flags);
}

void bullet_btRigidBody_setGravity(btRigidBody* c_this,btVector3* acceleration){
	btVector3 const& c_arg_acceleration=(btVector3 const&)(*acceleration);
	c_this->setGravity(c_arg_acceleration);
}

void bullet_btRigidBody_setInvInertiaDiagLocal(btRigidBody* c_this,btVector3* diagInvInertia){
	btVector3 const& c_arg_diagInvInertia=(btVector3 const&)(*diagInvInertia);
	c_this->setInvInertiaDiagLocal(c_arg_diagInvInertia);
}

void bullet_btRigidBody_setLinearFactor(btRigidBody* c_this,btVector3* linearFactor){
	btVector3 const& c_arg_linearFactor=(btVector3 const&)(*linearFactor);
	c_this->setLinearFactor(c_arg_linearFactor);
}

void bullet_btRigidBody_setLinearVelocity(btRigidBody* c_this,btVector3* lin_vel){
	btVector3 const& c_arg_lin_vel=(btVector3 const&)(*lin_vel);
	c_this->setLinearVelocity(c_arg_lin_vel);
}

void bullet_btRigidBody_setMassProps(btRigidBody* c_this,double mass,btVector3* inertia){
	btScalar c_arg_mass=mass;
	btVector3 const& c_arg_inertia=(btVector3 const&)(*inertia);
	c_this->setMassProps(c_arg_mass,c_arg_inertia);
}

void bullet_btRigidBody_setMotionState(btRigidBody* c_this,btMotionState* motionState){
	btMotionState * c_arg_motionState=(btMotionState *)(void*)(motionState);
	c_this->setMotionState(c_arg_motionState);
}

void bullet_btRigidBody_setNewBroadphaseProxy(btRigidBody* c_this,btBroadphaseProxy* broadphaseProxy){
	btBroadphaseProxy * c_arg_broadphaseProxy=(btBroadphaseProxy *)(void*)(broadphaseProxy);
	c_this->setNewBroadphaseProxy(c_arg_broadphaseProxy);
}

void bullet_btRigidBody_setPushVelocity(btRigidBody* c_this,btVector3* v){
	btVector3 const& c_arg_v=(btVector3 const&)(*v);
	c_this->setPushVelocity(c_arg_v);
}

void bullet_btRigidBody_setSleepingThresholds(btRigidBody* c_this,double linear,double angular){
	btScalar c_arg_linear=linear;
	btScalar c_arg_angular=angular;
	c_this->setSleepingThresholds(c_arg_linear,c_arg_angular);
}

void bullet_btRigidBody_setTurnVelocity(btRigidBody* c_this,btVector3* v){
	btVector3 const& c_arg_v=(btVector3 const&)(*v);
	c_this->setTurnVelocity(c_arg_v);
}

void bullet_btRigidBody_translate(btRigidBody* c_this,btVector3* v){
	btVector3 const& c_arg_v=(btVector3 const&)(*v);
	c_this->translate(c_arg_v);
}

void bullet_btRigidBody_updateDeactivation(btRigidBody* c_this,double timeStep){
	btScalar c_arg_timeStep=timeStep;
	c_this->updateDeactivation(c_arg_timeStep);
}

void bullet_btRigidBody_updateInertiaTensor(btRigidBody* c_this){
	c_this->updateInertiaTensor();
}

bool bullet_btRigidBody_wantsSleeping(btRigidBody* c_this){
	bool c_out = c_this->wantsSleeping();
	bool wrap_out = (c_out);
	return wrap_out;
}

#ifdef __cplusplus
}
#endif
